package com.cmeduSystem.common.flow.model;

import com.baomidou.mybatisplus.annotation.*;
import lombok.Data;

import java.util.Date;
import java.util.List;

/**
 * 委托用户的实体。
 *
 * @author xulei
 * @date 2025-09-04
 */
@Data
@TableName(value = "zz_flow_delegate_user")
public class FlowDelegateUser {

    /**
     * 主键Id。
     */
    @TableId(value = "id")
    private Long id;

    /**
     * 委托用户的登录名，多个用户之间逗号分隔。
     */
    @TableField(value = "delegate_users")
    private String delegateUsers;

    /**
     * 流程定义标识，多个流程之间逗号分隔。
     */
    @TableField(value = "process_definition_keys")
    private String processDefinitionKeys;

    /**
     * 委托范围。可取值user,dept,post,dept_post,role，多个值之间逗号分隔。
     */
    @TableField(value = "delegate_scope")
    private String delegateScope;

    /**
     * 开始时间。
     */
    @TableField(value = "start_time")
    private Date startTime;

    /**
     * 结束时间。
     */
    @TableField(value = "end_time")
    private Date endTime;

    /**
     * 委托说明。
     */
    @TableField(value = "memo")
    private String memo;

    /**
     * 创建时间。
     */
    @TableField(value = "create_time")
    private Date createTime;

    /**
     * 创建者。
     */
    @TableField(value = "create_user_id")
    private Long createUserId;

    /**
     * 创建者登录名。
     */
    @TableField(value = "create_login_name")
    private String createLoginName;

    /**
     * 创建者显示名。
     */
    @TableField(value = "create_show_name")
    private String createShowName;

    /**
     * 修改时间。
     */
    @TableField(value = "update_time")
    private Date updateTime;

    /**
     * 更新者。
     */
    @TableField(value = "update_user_id")
    private Long updateUserId;

    /**
     * 委托人查询列表中包含的被委托用户列表数据
     */
    @TableField(exist = false)
    private List<FlowDelegatedUser> flowDelegatedUserList;

    /**
     * 被委托人查询列表中会包含该字段。
     */
    @TableField(exist = false)
    private FlowDelegatedUser flowDelegatedUser;
}
